.\" Copyright (c) 2012, 2022, Oracle and/or its affiliates. All rights reserved.
.\" DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
.\"
.\" This code is free software; you can redistribute it and/or modify it
.\" under the terms of the GNU General Public License version 2 only, as
.\" published by the Free Software Foundation.
.\"
.\" This code is distributed in the hope that it will be useful, but WITHOUT
.\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
.\" FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
.\" version 2 for more details (a copy is included in the LICENSE file that
.\" accompanied this code).
.\"
.\" You should have received a copy of the GNU General Public License version
.\" 2 along with this work; if not, write to the Free Software Foundation,
.\" Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
.\"
.\" Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
.\" or visit www.oracle.com if you need additional information or have any
.\" questions.
.\"
.\" Automatically generated by Pandoc 2.3.1
.\"
.TH "JCMD" "1" "2021" "JDK 17" "JDK Commands"
.hy
.SH NAME
.PP
jcmd \- send diagnostic command requests to a running Java Virtual
Machine (JVM)
.SH SYNOPSIS
.PP
\f[CB]jcmd\f[R] [\f[I]pid\f[R] | \f[I]main\-class\f[R]] \f[I]command\f[R]...
| \f[CB]PerfCounter.print\f[R] | \f[CB]\-f\f[R] \f[I]filename\f[R]
.PP
\f[CB]jcmd\f[R] [\f[CB]\-l\f[R]]
.PP
\f[CB]jcmd\f[R] \f[CB]\-h\f[R]
.TP
.B \f[I]pid\f[R]
When used, the \f[CB]jcmd\f[R] utility sends the diagnostic command
request to the process ID for the Java process.
.RS
.RE
.TP
.B \f[I]main\-class\f[R]
When used, the \f[CB]jcmd\f[R] utility sends the diagnostic command
request to all Java processes with the specified name of the main class.
.RS
.RE
.TP
.B \f[I]command\f[R]
The \f[CB]command\f[R] must be a valid \f[CB]jcmd\f[R] command for the
selected JVM.
The list of available commands for \f[CB]jcmd\f[R] is obtained by running
the \f[CB]help\f[R] command (\f[CB]jcmd\f[R] \f[I]pid\f[R] \f[CB]help\f[R])
where \f[I]pid\f[R] is the process ID for the running Java process.
If the \f[I]pid\f[R] is \f[CB]0\f[R], commands will be sent to all Java
processes.
The main class argument will be used to match, either partially or
fully, the class used to start Java.
If no options are given, it lists the running Java process identifiers
with the main class and command\-line arguments that were used to launch
the process (the same as using \f[CB]\-l\f[R]).
.RS
.RE
.TP
.B \f[CB]Perfcounter.print\f[R]
Prints the performance counters exposed by the specified Java process.
.RS
.RE
.TP
.B \f[CB]\-f\f[R] \f[I]filename\f[R]
Reads and executes commands from a specified file, \f[I]filename\f[R].
.RS
.RE
.TP
.B \f[CB]\-l\f[R]
Displays the list of Java Virtual Machine process identifiers that are
not running in a separate docker process along with the main class and
command\-line arguments that were used to launch the process.
If the JVM is in a docker process, you must use tools such as
\f[CB]ps\f[R] to look up the PID.
.RS
.PP
\f[B]Note:\f[R]
.PP
Using \f[CB]jcmd\f[R] without arguments is the same as using
\f[CB]jcmd\ \-l\f[R].
.RE
.TP
.B \f[CB]\-h\f[R]
Displays the \f[CB]jcmd\f[R] utility\[aq]s command\-line help.
.RS
.RE
.SH DESCRIPTION
.PP
The \f[CB]jcmd\f[R] utility is used to send diagnostic command requests to
the JVM.
It must be used on the same machine on which the JVM is running, and
have the same effective user and group identifiers that were used to
launch the JVM.
Each diagnostic command has its own set of arguments.
To display the description, syntax, and a list of available arguments
for a diagnostic command, use the name of the command as the argument.
For example:
.RS
.PP
\f[CB]jcmd\f[R] \f[I]pid\f[R] \f[CB]help\f[R] \f[I]command\f[R]
.RE
.PP
If arguments contain spaces, then you must surround them with single or
double quotation marks (\f[CB]\[aq]\f[R] or \f[CB]"\f[R]).
In addition, you must escape single or double quotation marks with a
backslash (\f[CB]\\\f[R]) to prevent the operating system shell from
processing quotation marks.
Alternatively, you can surround these arguments with single quotation
marks and then with double quotation marks (or with double quotation
marks and then with single quotation marks).
.PP
If you specify the process identifier (\f[I]pid\f[R]) or the main class
(\f[I]main\-class\f[R]) as the first argument, then the \f[CB]jcmd\f[R]
utility sends the diagnostic command request to the Java process with
the specified identifier or to all Java processes with the specified
name of the main class.
You can also send the diagnostic command request to all available Java
processes by specifying \f[CB]0\f[R] as the process identifier.
.SH COMMANDS FOR JCMD
.PP
The \f[I]command\f[R] must be a valid \f[CB]jcmd\f[R] diagnostic command
for the selected JVM.
The list of available commands for \f[CB]jcmd\f[R] is obtained by running
the \f[CB]help\f[R] command (\f[CB]jcmd\f[R] \f[I]pid\f[R] \f[CB]help\f[R])
where \f[I]pid\f[R] is the process ID for a running Java process.
If the \f[I]pid\f[R] is \f[CB]0\f[R], commands will be sent to all Java
processes.
The main class argument will be used to match, either partially or
fully, the class used to start Java.
If no options are given, it lists the running Java process identifiers
that are not in separate docker processes along with the main class and
command\-line arguments that were used to launch the process (the same
as using \f[CB]\-l\f[R]).
.PP
The following commands are available:
.TP
.B \f[CB]help\f[R] [\f[I]options\f[R]] [\f[I]arguments\f[R]]
For more information about a specific command.
.RS
.PP
\f[I]arguments\f[R]:
.IP \[bu] 2
\f[I]command name\f[R]: The name of the command for which we want help
(STRING, no default value)
.PP
\f[B]Note:\f[R]
.PP
The following \f[I]options\f[R] must be specified using either
\f[I]key\f[R] or \f[I]key\f[R]\f[CB]=\f[R]\f[I]value\f[R] syntax.
.PP
\f[I]options\f[R]:
.IP \[bu] 2
\f[CB]\-all\f[R]: (Optional) Show help for all commands (BOOLEAN, false) .
.RE
.TP
.B \f[CB]Compiler.codecache\f[R]
Prints code cache layout and bounds.
.RS
.PP
Impact: Low
.PP
Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R]
.RE
.TP
.B \f[CB]Compiler.codelist\f[R]
Prints all compiled methods in code cache that are alive.
.RS
.PP
Impact: Medium
.PP
Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R]
.RE
.TP
.B \f[CB]Compiler.queue\f[R]
Prints methods queued for compilation.
.RS
.PP
Impact: Low
.PP
Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R]
.RE
.TP
.B \f[CB]Compiler.directives_add\ *filename*\ *arguments*\f[R]
Adds compiler directives from a file.
.RS
.PP
Impact: Low
.PP
Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R]
.PP
\f[I]arguments\f[R]:
.PP
\f[I]filename\f[R]: The name of the directives file (STRING, no default
value)
.RE
.TP
.B \f[CB]Compiler.directives_clear\f[R]
Remove all compiler directives.
.RS
.PP
Impact: Low
.PP
Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R]
.RE
.TP
.B \f[CB]Compiler.directives_print\f[R]
Prints all active compiler directives.
.RS
.PP
Impact: Low
.PP
Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R]
.RE
.TP
.B \f[CB]Compiler.directives_remove\f[R]
Remove latest added compiler directive.
.RS
.PP
Impact: Low
.PP
Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R]
.RE
.TP
.B \f[CB]GC.class_histogram\f[R] [\f[I]options\f[R]]
Provides statistics about the Java heap usage.
.RS
.PP
Impact: High \-\-\- depends on Java heap size and content.
.PP
Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R]
.PP
\f[B]Note:\f[R]
.PP
The \f[I]options\f[R] must be specified using either \f[I]key\f[R] or
\f[I]key\f[R]\f[CB]=\f[R]\f[I]value\f[R] syntax.
.PP
\f[I]options\f[R]:
.IP \[bu] 2
\f[CB]\-all\f[R]: (Optional) Inspects all objects, including unreachable
objects (BOOLEAN, false)
.RE
.TP
.B \f[CB]GC.finalizer_info\f[R]
Provides information about the Java finalization queue.
.RS
.PP
Impact: Medium
.PP
Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R]
.RE
.TP
.B \f[CB]GC.heap_dump\f[R] [\f[I]options\f[R]] [\f[I]arguments\f[R]]
Generates a HPROF format dump of the Java heap.
.RS
.PP
Impact: High \-\-\- depends on the Java heap size and content.
Request a full GC unless the \f[CB]\-all\f[R] option is specified.
.PP
Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R]
.PP
\f[B]Note:\f[R]
.PP
The following \f[I]options\f[R] must be specified using either
\f[I]key\f[R] or \f[I]key\f[R]\f[CB]=\f[R]\f[I]value\f[R] syntax.
.PP
\f[I]options\f[R]:
.IP \[bu] 2
\f[CB]\-all\f[R]: (Optional) Dump all objects, including unreachable
objects (BOOLEAN, false)
.PP
\f[I]arguments\f[R]:
.IP \[bu] 2
\f[I]filename\f[R]: The name of the dump file (STRING, no default value)
.RE
.TP
.B \f[CB]GC.heap_info\f[R]
Provides generic Java heap information.
.RS
.PP
Impact: Medium
.PP
Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R]
.RE
.TP
.B \f[CB]GC.run\f[R]
Calls \f[CB]java.lang.System.gc()\f[R].
.RS
.PP
Impact: Medium \-\-\- depends on the Java heap size and content.
.RE
.TP
.B \f[CB]GC.run_finalization\f[R]
Calls \f[CB]java.lang.System.runFinalization()\f[R].
.RS
.PP
Impact: Medium \-\-\- depends on the Java content.
.RE
.TP
.B \f[CB]JFR.check\f[R] [\f[I]options\f[R]]
Show information about a running flight recording
.RS
.PP
Impact: Low
.PP
\f[B]Note:\f[R]
.PP
The \f[I]options\f[R] must be specified using either \f[I]key\f[R] or
\f[I]key\f[R]\f[CB]=\f[R]\f[I]value\f[R] syntax.
If no parameters are entered, information for all active recordings is
shown.
.PP
\f[I]options\f[R]:
.IP \[bu] 2
\f[CB]name\f[R]: (Optional) Name of the flight recording.
(STRING, no default value)
.IP \[bu] 2
\f[CB]verbose\f[R]: (Optional) Flag for printing the event settings for
the recording (BOOLEAN, false)
.RE
.TP
.B \f[CB]JFR.configure\f[R] [\f[I]options\f[R]]
Set the parameters for a flight recording
.RS
.PP
Impact: Low
.PP
\f[B]Note:\f[R]
.PP
The \f[I]options\f[R] must be specified using either \f[I]key\f[R] or
\f[I]key\f[R]\f[CB]=\f[R]\f[I]value\f[R] syntax.
If no parameters are entered, the current settings are displayed.
.PP
\f[I]options\f[R]:
.IP \[bu] 2
\f[CB]globalbuffercount\f[R]: (Optional) Number of global buffers.
This option is a legacy option: change the \f[CB]memorysize\f[R] parameter
to alter the number of global buffers.
This value cannot be changed once JFR has been initalized.
(STRING, default determined by the value for \f[CB]memorysize\f[R])
.IP \[bu] 2
\f[CB]globalbuffersize\f[R]: (Optional) Size of the global buffers, in
bytes.
This option is a legacy option: change the \f[CB]memorysize\f[R] parameter
to alter the size of the global buffers.
This value cannot be changed once JFR has been initalized.
(STRING, default determined by the value for \f[CB]memorysize\f[R])
.IP \[bu] 2
\f[CB]maxchunksize\f[R]: (Optional) Maximum size of an individual data
chunk in bytes if one of the following suffixes is not used: \[aq]m\[aq]
or \[aq]M\[aq] for megabytes OR \[aq]g\[aq] or \[aq]G\[aq] for
gigabytes.
This value cannot be changed once JFR has been initialized.
(STRING, 12M)
.IP \[bu] 2
\f[CB]memorysize\f[R]: (Optional) Overall memory size, in bytes if one of
the following suffixes is not used: \[aq]m\[aq] or \[aq]M\[aq] for
megabytes OR \[aq]g\[aq] or \[aq]G\[aq] for gigabytes.
This value cannot be changed once JFR has been initialized.
(STRING, 10M)
.IP \[bu] 2
\f[CB]repositorypath\f[R]: (Optional) Path to the location where
recordings are stored until they are written to a permanent file.
(STRING, The default location is the temporary directory for the
operating system.
On Linux operating systems, the temporary directory is \f[CB]/tmp\f[R].
On Windwows, the temporary directory is specified by the \f[CB]TMP\f[R]
environment variable.)
.IP \[bu] 2
\f[CB]stackdepth\f[R]: (Optional) Stack depth for stack traces.
Setting this value greater than the default of 64 may cause a
performance degradation.
This value cannot be changed once JFR has been initialized.
(LONG, 64)
.IP \[bu] 2
\f[CB]thread_buffer_size\f[R]: (Optional) Local buffer size for each
thread in bytes if one of the following suffixes is not used:
\[aq]k\[aq] or \[aq]K\[aq] for kilobytes or \[aq]m\[aq] or \[aq]M\[aq]
for megabytes.
Overriding this parameter could reduce performance and is not
recommended.
This value cannot be changed once JFR has been initialized.
(STRING, 8k)
.IP \[bu] 2
\f[CB]samplethreads\f[R]: (Optional) Flag for activating thread sampling.
(BOOLEAN, true)
.RE
.TP
.B \f[CB]JFR.dump\f[R] [\f[I]options\f[R]]
Write data to a file while a flight recording is running
.RS
.PP
Impact: Low
.PP
\f[B]Note:\f[R]
.PP
The \f[I]options\f[R] must be specified using either \f[I]key\f[R] or
\f[I]key\f[R]\f[CB]=\f[R]\f[I]value\f[R] syntax.
No options are required.
The recording continues to run after the data is written.
.PP
\f[I]options\f[R]:
.IP \[bu] 2
\f[CB]begin\f[R]: (Optional) Specify the time from which recording data
will be included in the dump file.
The format is specified as local time.
(STRING, no default value)
.IP \[bu] 2
\f[CB]end\f[R]: (Optional) Specify the time to which recording data will
be included in the dump file.
The format is specified as local time.
(STRING, no default value)
.RS 2
.PP
\f[B]Note:\f[R] For both \f[CB]begin\f[R] and \f[CB]end\f[R], the time must
be in a format that can be read by java.time.LocalTime::parse(STRING),
java.time.LocalDateTime::parse(STRING) or
java.time.Instant::parse(STRING).
For example, "13:20:15", "2020\-03\-17T09:00:00" or
"2020\-03\-17T09:00:00Z".
.PP
\f[B]Note:\f[R] \f[CB]begin\f[R] and \f[CB]end\f[R] times correspond to the
timestamps found within the recorded information in the flight recording
data.
.PP
Another option is to use a time relative to the current time that is
specified by a negative integer followed by "s", "m" or "h".
For example, "\-12h", "\-15m" or "\-30s"
.RE
.IP \[bu] 2
\f[CB]filename\f[R]: (Optional) Name of the file to which the flight
recording data is dumped.
If no filename is given, a filename is generated from the PID and the
current date.
The filename may also be a directory in which case, the filename is
generated from the PID and the current date in the specified directory.
(STRING, no default value)
.IP \[bu] 2
\f[CB]maxage\f[R]: (Optional) Length of time for dumping the flight
recording data to a file.
(INTEGER followed by \[aq]s\[aq] for seconds \[aq]m\[aq] for minutes or
\[aq]h\[aq] for hours, no default value)
.IP \[bu] 2
\f[CB]maxsize\f[R]: (Optional) Maximum size for the amount of data to dump
from a flight recording in bytes if one of the following suffixes is not
used: \[aq]m\[aq] or \[aq]M\[aq] for megabytes OR \[aq]g\[aq] or
\[aq]G\[aq] for gigabytes.
(STRING, no default value)
.IP \[bu] 2
\f[CB]name\f[R]: (Optional) Name of the recording.
If no name is given, data from all recordings is dumped.
(STRING, no default value)
.IP \[bu] 2
\f[CB]path\-to\-gc\-root\f[R]: (Optional) Flag for saving the path to
garbage collection (GC) roots at the time the recording data is dumped.
The path information is useful for finding memory leaks but collecting
it can cause the application to pause for a short period of time.
Turn on this flag only when you have an application that you suspect has
a memory leak.
(BOOLEAN, false)
.RE
.TP
.B \f[CB]JFR.start\f[R] [\f[I]options\f[R]]
Start a flight recording
.RS
.PP
Impact: Low
.PP
\f[B]Note:\f[R]
.PP
The \f[I]options\f[R] must be specified using either \f[I]key\f[R] or
\f[I]key\f[R]\f[CB]=\f[R]\f[I]value\f[R] syntax.
If no parameters are entered, then a recording is started with default
values.
.PP
\f[I]options\f[R]:
.IP \[bu] 2
\f[CB]delay\f[R]: (Optional) Length of time to wait before starting to
record (INTEGER followed by \[aq]s\[aq] for seconds \[aq]m\[aq] for
minutes or \[aq]h\[aq] for hours, 0s)
.IP \[bu] 2
\f[CB]disk\f[R]: (Optional) Flag for also writing the data to disk while
recording (BOOLEAN, true)
.IP \[bu] 2
\f[CB]dumponexit\f[R]: (Optional) Flag for writing the recording to disk
when the Java Virtual Machine (JVM) shuts down.
If set to \[aq]true\[aq] and no value is given for \f[CB]filename\f[R],
the recording is written to a file in the directory where the process
was started.
The file name is a system\-generated name that contains the process ID,
the recording ID and the current time stamp.
(For example: \f[CB]id\-1\-2019_12_12_10_41.jfr\f[R]) (BOOLEAN, false)
.IP \[bu] 2
\f[CB]duration\f[R]: (Optional) Length of time to record.
Note that \f[CB]0s\f[R] means forever (INTEGER followed by \[aq]s\[aq] for
seconds \[aq]m\[aq] for minutes or \[aq]h\[aq] for hours, 0s)
.IP \[bu] 2
\f[CB]filename\f[R]: (Optional) Name of the file to which the flight
recording data is written when the recording is stopped.
If no filename is given, a filename is generated from the PID and the
current date and is placed in the directory where the process was
started.
The filename may also be a directory in which case, the filename is
generated from the PID and the current date in the specified directory.
(STRING, no default value)
.IP \[bu] 2
\f[CB]maxage\f[R]: (Optional) Maximum time to keep the recorded data on
disk.
This parameter is valid only when the \f[CB]disk\f[R] parameter is set to
\f[CB]true\f[R].
Note \f[CB]0s\f[R] means forever.
(INTEGER followed by \[aq]s\[aq] for seconds \[aq]m\[aq] for minutes or
\[aq]h\[aq] for hours, 0s)
.IP \[bu] 2
\f[CB]maxsize\f[R]: (Optional) Maximum size of the data to keep on disk in
bytes if one of the following suffixes is not used: \[aq]m\[aq] or
\[aq]M\[aq] for megabytes OR \[aq]g\[aq] or \[aq]G\[aq] for gigabytes.
This parameter is valid only when the \f[CB]disk\f[R] parameter is set to
\[aq]true\[aq].
The value must not be less than the value for the \f[CB]maxchunksize\f[R]
parameter set with the \f[CB]JFR.configure\f[R] command.
(STRING, 0 (no maximum size))
.IP \[bu] 2
\f[CB]name\f[R]: (Optional) Name of the recording.
If no name is provided, a name is generated.
Make note of the generated name that is shown in the response to the
command so that you can use it with other commands.
(STRING, system\-generated default name)
.IP \[bu] 2
\f[CB]path\-to\-gc\-root\f[R]: (Optional) Flag for saving the path to
garbage collection (GC) roots at the end of a recording.
The path information is useful for finding memory leaks but collecting
it is time consuming.
Turn on this flag only when you have an application that you suspect has
a memory leak.
If the \f[CB]settings\f[R] parameter is set to \[aq]profile\[aq], then the
information collected includes the stack trace from where the potential
leaking object was allocated.
(BOOLEAN, false)
.IP \[bu] 2
\f[CB]settings\f[R]: (Optional) Name of the settings file that identifies
which events to record.
To specify more than one file, separate the names with a comma
(\[aq],\[aq]).
Include the path if the file is not in \f[CB]JAVA\-HOME\f[R]/lib/jfr.
The following profiles are included with the JDK in the
\f[CB]JAVA\-HOME\f[R]/lib/jfr directory: \[aq]default.jfc\[aq]: collects a
predefined set of information with low overhead, so it has minimal
impact on performance and can be used with recordings that run
continuously; \[aq]profile.jfc\[aq]: Provides more data than the
\[aq]default.jfc\[aq] profile, but with more overhead and impact on
performance.
Use this configuration for short periods of time when more information
is needed.
Use \f[CB]none\f[R] to start a recording without a predefined
configuration file.
(STRING, \f[CB]JAVA\-HOME\f[R]/lib/jfr/default.jfc)
.PP
Event settings and .jfc options can be specified using the following
syntax:
.IP \[bu] 2
\f[CB]option\f[R]: (Optional) Specifies the option value to modify.
To list available options, use the \f[CB]JAVA_HOME\f[R]/bin/jfr tool.
.IP \[bu] 2
\f[CB]event\-setting\f[R]: (Optional) Specifies the event setting value to
modify.
Use the form: #= To add a new event setting, prefix the event name with
\[aq]+\[aq].
.PP
You can specify values for multiple event settings and .jfc options by
separating them with a whitespace.
In case of a conflict between a parameter and a .jfc option, the
parameter will take precedence.
The whitespace delimiter can be omitted for timespan values, i.e.
20ms.
For more information about the settings syntax, see Javadoc of the
jdk.jfr package.
.RE
.TP
.B \f[CB]JFR.stop\f[R] [\f[I]options\f[R]]
Stop a flight recording
.RS
.PP
Impact: Low
.PP
\f[B]Note:\f[R]
.PP
The \f[I]options\f[R] must be specified using either \f[I]key\f[R] or
\f[I]key\f[R]\f[CB]=\f[R]\f[I]value\f[R] syntax.
If no parameters are entered, then no recording is stopped.
.PP
\f[I]options\f[R]:
.IP \[bu] 2
\f[CB]filename\f[R]: (Optional) Name of the file to which the recording is
written when the recording is stopped.
If no path is provided, the data from the recording is discarded.
(STRING, no default value)
.IP \[bu] 2
\f[CB]name\f[R]: (Optional) Name of the recording (STRING, no default
value)
.RE
.TP
.B \f[CB]JVMTI.agent_load\f[R] [\f[I]arguments\f[R]]
Loads JVMTI native agent.
.RS
.PP
Impact: Low
.PP
Permission: \f[CB]java.lang.management.ManagementPermission(control)\f[R]
.PP
\f[I]arguments\f[R]:
.IP \[bu] 2
\f[I]library path\f[R]: Absolute path of the JVMTI agent to load.
(STRING, no default value)
.IP \[bu] 2
\f[I]agent option\f[R]: (Optional) Option string to pass the agent.
(STRING, no default value)
.RE
.TP
.B \f[CB]JVMTI.data_dump\f[R]
Signals the JVM to do a data\-dump request for JVMTI.
.RS
.PP
Impact: High
.PP
Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R]
.RE
.TP
.B \f[CB]ManagementAgent.start\f[R] [\f[I]options\f[R]]
Starts remote management agent.
.RS
.PP
Impact: Low \-\-\- no impact
.PP
\f[B]Note:\f[R]
.PP
The following \f[I]options\f[R] must be specified using either
\f[I]key\f[R] or \f[I]key\f[R]\f[CB]=\f[R]\f[I]value\f[R] syntax.
.PP
\f[I]options\f[R]:
.IP \[bu] 2
\f[CB]config.file\f[R]: (Optional) Sets
\f[CB]com.sun.management.config.file\f[R] (STRING, no default value)
.IP \[bu] 2
\f[CB]jmxremote.host\f[R]: (Optional) Sets
\f[CB]com.sun.management.jmxremote.host\f[R] (STRING, no default value)
.IP \[bu] 2
\f[CB]jmxremote.port\f[R]: (Optional) Sets
\f[CB]com.sun.management.jmxremote.port\f[R] (STRING, no default value)
.IP \[bu] 2
\f[CB]jmxremote.rmi.port\f[R]: (Optional) Sets
\f[CB]com.sun.management.jmxremote.rmi.port\f[R] (STRING, no default
value)
.IP \[bu] 2
\f[CB]jmxremote.ssl\f[R]: (Optional) Sets
\f[CB]com.sun.management.jmxremote.ssl\f[R] (STRING, no default value)
.IP \[bu] 2
\f[CB]jmxremote.registry.ssl\f[R]: (Optional) Sets
\f[CB]com.sun.management.jmxremote.registry.ssl\f[R] (STRING, no default
value)
.IP \[bu] 2
\f[CB]jmxremote.authenticate\f[R]: (Optional) Sets
\f[CB]com.sun.management.jmxremote.authenticate\f[R] (STRING, no default
value)
.IP \[bu] 2
jmxremote.password.file: (Optional) Sets
\f[CB]com.sun.management.jmxremote.password.file\f[R] (STRING, no default
value)
.IP \[bu] 2
\f[CB]jmxremote.access.file\f[R]: (Optional) Sets
\f[CB]com.sun.management.jmxremote.acce\ ss.file\f[R] (STRING, no default
value)
.IP \[bu] 2
\f[CB]jmxremote.login.config\f[R]: (Optional) Sets
\f[CB]com.sun.management.jmxremote.log\ in.config\f[R] (STRING, no default
value)
.IP \[bu] 2
\f[CB]jmxremote.ssl.enabled.cipher.suites\f[R]: (Optional) Sets
\f[CB]com.sun.management\f[R].
.IP \[bu] 2
\f[CB]jmxremote.ssl.enabled.cipher.suite\f[R]: (STRING, no default value)
.IP \[bu] 2
\f[CB]jmxremote.ssl.enabled.protocols\f[R]: (Optional) Sets
\f[CB]com.sun.management.jmxr\ emote.ssl.enabled.protocols\f[R] (STRING,
no default value)
.IP \[bu] 2
\f[CB]jmxremote.ssl.need.client.auth\f[R]: (Optional) Sets
\f[CB]com.sun.management.jmxre\ mote.need.client.auth\f[R] (STRING, no
default value)
.IP \[bu] 2
\f[CB]jmxremote.ssl.config.file\f[R]: (Optional) Sets
\f[CB]com.sun.management.jmxremote.\ ssl_config_file\f[R] (STRING, no
default value)
.IP \[bu] 2
\f[CB]jmxremote.autodiscovery\f[R]: (Optional) Sets
\f[CB]com.sun.management.jmxremote.au\ todiscovery\f[R] (STRING, no
default value)
.IP \[bu] 2
\f[CB]jdp.port\f[R]: (Optional) Sets \f[CB]com.sun.management.jdp.port\f[R]
(INT, no default value)
.IP \[bu] 2
\f[CB]jdp.address\f[R]: (Optional) Sets
\f[CB]com.sun.management.jdp.address\f[R] (STRING, no default value)
.IP \[bu] 2
\f[CB]jdp.source_addr\f[R]: (Optional) Sets
\f[CB]com.sun.management.jdp.source_addr\f[R] (STRING, no default value)
.IP \[bu] 2
\f[CB]jdp.ttl\f[R]: (Optional) Sets \f[CB]com.sun.management.jdp.ttl\f[R]
(INT, no default value)
.IP \[bu] 2
\f[CB]jdp.pause\f[R]: (Optional) Sets
\f[CB]com.sun.management.jdp.pause\f[R] (INT, no default value)
.IP \[bu] 2
\f[CB]jdp.name\f[R]: (Optional) Sets \f[CB]com.sun.management.jdp.name\f[R]
(STRING, no default value)
.RE
.TP
.B \f[CB]ManagementAgent.start_local\f[R]
Starts the local management agent.
.RS
.PP
Impact: Low \-\-\- no impact
.RE
.TP
.B \f[CB]ManagementAgent.status\f[R]
Print the management agent status.
.RS
.PP
Impact: Low \-\-\- no impact
.PP
Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R]
.RE
.TP
.B \f[CB]ManagementAgent.stop\f[R]
Stops the remote management agent.
.RS
.PP
Impact: Low \-\-\- no impact
.RE
.TP
.B \f[CB]Thread.print\f[R] [\f[I]options\f[R]]
Prints all threads with stacktraces.
.RS
.PP
Impact: Medium \-\-\- depends on the number of threads.
.PP
Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R]
.PP
\f[B]Note:\f[R]
.PP
The following \f[I]options\f[R] must be specified using either
\f[I]key\f[R] or \f[I]key\f[R]\f[CB]=\f[R]\f[I]value\f[R] syntax.
.PP
\f[I]options\f[R]:
.IP \[bu] 2
\f[CB]\-l\f[R]: (Optional) Prints \f[CB]java.util.concurrent\f[R] locks
(BOOLEAN, false)
.RE
.TP
.B \f[CB]VM.cds\f[R] [\f[I]arguments\f[R]]
Dumps a static or dynamic shared archive that includes all currently
loaded classes.
.RS
.PP
Impact: Medium \-\-\- pause time depends on number of loaded classes
.PP
Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R]
.PP
\f[I]arguments\f[R]:
.IP \[bu] 2
\f[CB]subcmd\f[R]: must be either \f[CB]static_dump\f[R] or
.IP \[bu] 2
\f[CB]filename\f[R]: (Optional) Name of the shared archive to be dumped
(STRING, no default value)
.PP
If \f[CB]filename\f[R] is not specified, a default file name is chosen
using the pid of the target JVM process.
For example, java_pid1234_static.jsa, java_pid5678_dynamic.jsa, etc.
.PP
If \f[CB]filename\f[R] is not specified as an absolute path, the archive
file is created in a directory relative to the current directory of the
target JVM process.
.RE
.TP
.B \f[CB]VM.classloaders\f[R] [\f[I]options\f[R]]
Prints classloader hierarchy.
.RS
.PP
Impact: Medium \-\-\- Depends on number of class loaders and classes
loaded.
.PP
Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R]
.PP
The following \f[I]options\f[R] must be specified using either
\f[I]key\f[R] or \f[I]key\f[R]\f[CB]=\f[R]\f[I]value\f[R] syntax.
.PP
\f[I]options\f[R]:
.IP \[bu] 2
\f[CB]show\-classes\f[R]: (Optional) Print loaded classes.
(BOOLEAN, false)
.IP \[bu] 2
\f[CB]verbose\f[R]: (Optional) Print detailed information.
(BOOLEAN, false)
.IP \[bu] 2
\f[CB]fold\f[R]: (Optional) Show loaders of the same name and class as
one.
(BOOLEAN, true)
.RE
.TP
.B \f[CB]VM.classloader_stats\f[R]
Prints statistics about all ClassLoaders.
.RS
.PP
Impact: Low
.PP
Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R]
.RE
.TP
.B \f[CB]VM.class_hierarchy\f[R] [\f[I]options\f[R]] [\f[I]arguments\f[R]]
Prints a list of all loaded classes, indented to show the class
hierarchy.
The name of each class is followed by the ClassLoaderData* of its
ClassLoader, or "null" if it is loaded by the bootstrap class loader.
.RS
.PP
Impact: Medium \-\-\- depends on the number of loaded classes.
.PP
Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R]
.PP
\f[B]Note:\f[R]
.PP
The following \f[I]options\f[R] must be specified using either
\f[I]key\f[R] or \f[I]key\f[R]\f[CB]=\f[R]\f[I]value\f[R] syntax.
.PP
\f[I]options\f[R]:
.IP \[bu] 2
\f[CB]\-i\f[R]: (Optional) Inherited interfaces should be printed.
(BOOLEAN, false)
.IP \[bu] 2
\f[CB]\-s\f[R]: (Optional) If a class name is specified, it prints the
subclasses.
If the class name is not specified, only the superclasses are printed.
(BOOLEAN, false)
.PP
\f[I]arguments\f[R]:
.IP \[bu] 2
\f[I]classname\f[R]: (Optional) The name of the class whose hierarchy
should be printed.
If not specified, all class hierarchies are printed.
(STRING, no default value)
.RE
.TP
.B \f[CB]VM.command_line\f[R]
Prints the command line used to start this VM instance.
.RS
.PP
Impact: Low
.PP
Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R]
.RE
.TP
.B \f[CB]VM.dynlibs\f[R]
Prints the loaded dynamic libraries.
.RS
.PP
Impact: Low
.PP
Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R]
.RE
.TP
.B \f[CB]VM.info\f[R]
Prints information about the JVM environment and status.
.RS
.PP
Impact: Low
.PP
Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R]
.RE
.TP
.B \f[CB]VM.log\f[R] [\f[I]options\f[R]]
Lists current log configuration, enables/disables/configures a log
output, or rotates all logs.
.RS
.PP
Impact: Low
.PP
Permission: \f[CB]java.lang.management.ManagementPermission(control)\f[R]
.PP
\f[I]options\f[R]:
.PP
\f[B]Note:\f[R]
.PP
The following \f[I]options\f[R] must be specified using either
\f[I]key\f[R] or \f[I]key\f[R]\f[CB]=\f[R]\f[I]value\f[R] syntax.
.IP \[bu] 2
\f[CB]output\f[R]: (Optional) The name or index (#) of output to
configure.
(STRING, no default value)
.IP \[bu] 2
\f[CB]output_options\f[R]: (Optional) Options for the output.
(STRING, no default value)
.IP \[bu] 2
\f[CB]what\f[R]: (Optional) Configures what tags to log.
(STRING, no default value )
.IP \[bu] 2
\f[CB]decorators\f[R]: (Optional) Configures which decorators to use.
Use \[aq]none\[aq] or an empty value to remove all.
(STRING, no default value)
.IP \[bu] 2
\f[CB]disable\f[R]: (Optional) Turns off all logging and clears the log
configuration.
(BOOLEAN, no default value)
.IP \[bu] 2
\f[CB]list\f[R]: (Optional) Lists current log configuration.
(BOOLEAN, no default value)
.IP \[bu] 2
\f[CB]rotate\f[R]: (Optional) Rotates all logs.
(BOOLEAN, no default value)
.RE
.TP
.B \f[CB]VM.flags\f[R] [\f[I]options\f[R]]
Prints the VM flag options and their current values.
.RS
.PP
Impact: Low
.PP
Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R]
.PP
\f[B]Note:\f[R]
.PP
The following \f[I]options\f[R] must be specified using either
\f[I]key\f[R] or \f[I]key\f[R]\f[CB]=\f[R]\f[I]value\f[R] syntax.
.PP
\f[I]options\f[R]:
.IP \[bu] 2
\f[CB]\-all\f[R]: (Optional) Prints all flags supported by the VM
(BOOLEAN, false).
.RE
.TP
.B \f[CB]VM.native_memory\f[R] [\f[I]options\f[R]]
Prints native memory usage
.RS
.PP
Impact: Medium
.PP
Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R]
.PP
\f[B]Note:\f[R]
.PP
The following \f[I]options\f[R] must be specified using either
\f[I]key\f[R] or \f[I]key\f[R]\f[CB]=\f[R]\f[I]value\f[R] syntax.
.PP
\f[I]options\f[R]:
.IP \[bu] 2
\f[CB]summary\f[R]: (Optional) Requests runtime to report current memory
summary, which includes total reserved and committed memory, along with
memory usage summary by each subsystem.
(BOOLEAN, false)
.IP \[bu] 2
\f[CB]detail\f[R]: (Optional) Requests runtime to report memory allocation
>= 1K by each callsite.
(BOOLEAN, false)
.IP \[bu] 2
\f[CB]baseline\f[R]: (Optional) Requests runtime to baseline current
memory usage, so it can be compared against in later time.
(BOOLEAN, false)
.IP \[bu] 2
\f[CB]summary.diff\f[R]: (Optional) Requests runtime to report memory
summary comparison against previous baseline.
(BOOLEAN, false)
.IP \[bu] 2
\f[CB]detail.diff\f[R]: (Optional) Requests runtime to report memory
detail comparison against previous baseline, which shows the memory
allocation activities at different callsites.
(BOOLEAN, false)
.IP \[bu] 2
\f[CB]shutdown\f[R]: (Optional) Requests runtime to shutdown itself and
free the memory used by runtime.
(BOOLEAN, false)
.IP \[bu] 2
\f[CB]statistics\f[R]: (Optional) Prints tracker statistics for tuning
purpose.
(BOOLEAN, false)
.IP \[bu] 2
\f[CB]scale\f[R]: (Optional) Memory usage in which scale, KB, MB or GB
(STRING, KB)
.RE
.TP
.B \f[CB]VM.print_touched_methods\f[R]
Prints all methods that have ever been touched during the lifetime of
this JVM.
.RS
.PP
Impact: Medium \-\-\- depends on Java content.
.RE
.TP
.B \f[CB]VM.set_flag\f[R] [\f[I]arguments\f[R]]
Sets the VM flag option by using the provided value.
.RS
.PP
Impact: Low
.PP
Permission: \f[CB]java.lang.management.ManagementPermission(control)\f[R]
.PP
\f[I]arguments\f[R]:
.IP \[bu] 2
\f[I]flag name\f[R]: The name of the flag that you want to set (STRING,
no default value)
.IP \[bu] 2
\f[I]string value\f[R]: (Optional) The value that you want to set
(STRING, no default value)
.RE
.TP
.B \f[CB]VM.stringtable\f[R] [\f[I]options\f[R]]
Dumps the string table.
.RS
.PP
Impact: Medium \-\-\- depends on the Java content.
.PP
Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R]
.PP
\f[B]Note:\f[R]
.PP
The following \f[I]options\f[R] must be specified using either
\f[I]key\f[R] or \f[I]key\f[R]\f[CB]=\f[R]\f[I]value\f[R] syntax.
.PP
\f[I]options\f[R]:
.IP \[bu] 2
\f[CB]\-verbose\f[R]: (Optional) Dumps the content of each string in the
table (BOOLEAN, false)
.RE
.TP
.B \f[CB]VM.symboltable\f[R] [\f[I]options\f[R]]
Dumps the symbol table.
.RS
.PP
Impact: Medium \-\-\- depends on the Java content.
.PP
Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R]
.PP
\f[B]Note:\f[R]
.PP
The following \f[I]options\f[R] must be specified using either
\f[I]key\f[R] or \f[I]key\f[R]\f[CB]=\f[R]\f[I]value\f[R] syntax).
.PP
\f[I]options\f[R]:
.IP \[bu] 2
\f[CB]\-verbose\f[R]: (Optional) Dumps the content of each symbol in the
table (BOOLEAN, false)
.RE
.TP
.B \f[CB]VM.systemdictionary\f[R]
Prints the statistics for dictionary hashtable sizes and bucket length.
.RS
.PP
Impact: Medium
.PP
Permission: \f[CB]java.lang.management.ManagementPermission(monitor)\f[R]
.PP
\f[B]Note:\f[R]
.PP
The following \f[I]options\f[R] must be specified using either
\f[I]key\f[R] or \f[I]key\f[R]\f[CB]=\f[R]\f[I]value\f[R] syntax.
.PP
\f[I]options\f[R]:
.IP \[bu] 2
\f[CB]verbose\f[R]: (Optional) Dump the content of each dictionary entry
for all class loaders (BOOLEAN, false) .
.RE
.TP
.B \f[CB]VM.system_properties\f[R]
Prints the system properties.
.RS
.PP
Impact: Low
.PP
Permission: \f[CB]java.util.PropertyPermission(*,\ read)\f[R]
.RE
.TP
.B \f[CB]VM.uptime\f[R] [\f[I]options\f[R]]
Prints the VM uptime.
.RS
.PP
Impact: Low
.PP
\f[B]Note:\f[R]
.PP
The following \f[I]options\f[R] must be specified using either
\f[I]key\f[R] or \f[I]key\f[R]\f[CB]=\f[R]\f[I]value\f[R] syntax.
.PP
\f[I]options\f[R]:
.IP \[bu] 2
\f[CB]\-date\f[R]: (Optional) Adds a prefix with the current date
(BOOLEAN, false)
.RE
.TP
.B \f[CB]VM.version\f[R]
Prints JVM version information.
.RS
.PP
Impact: Low
.PP
Permission:
\f[CB]java.util.PropertyPermission(java.vm.version,\ read)\f[R]
.RE
